// 一球从M米高度自由下落，
// 每次落地后返回原高度的一半，再落下。 
// 它在第N次落地时反弹多高？共经过多少米？ 保留两位小数
// 注意边界限制问题,不能一直对半分

#include<stdio.h>
int main(){
    double M, Hight, Distence;
    int N;
    scanf("%lf%d", &M, &N);
    Hight = M; //初始高度
    Distence =0.0; //初始距离
    for (int i=1;i<=N;i++){
        Hight = Hight/2.0;
        Distence = Distence+ 3.0* Hight;
        // printf("%0.2lf %0.2lf \n", Hight, Distence);
    }
    printf("%0.2lf %0.2lf", Hight, Distence-Hight);
    // 题目要求计算落地时经过多少米,循环中计算的是落地后反弹进过多少米,要减去最后的一次.
}

